package com.hualan.main;

import com.hualan.bean.AddressBook;
import com.hualan.bean.Contact;
import com.hualan.util.Pinyin4j;
import com.hualan.util.Utils;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class ContactTest {
    static AddressBook addressBook;
    public static void main(String[] args) {
        //创建电话本实例
        addressBook = new AddressBook();
        while (true){
            ui();
            //菜单数字
            String menu = Utils.getStringByRegex("[1-9]");
            switch (menu){
                case "1"://添加联系人
                    onAdd();
                    break;
                case "2"://查看全部联系人
                    addressBook.showAllContacts();
                    break;
                case "3"://根据分组查看联系人
                    System.out.print("输入分组：");
                    String groupName = Utils.getStringByRegex("[a-zA-Z]");
                    addressBook.showContactsByGroupName(groupName);
                    break;
                case "5"://根据电话关键字查看关键字
                    System.out.print("输入电话号码：");
                    addressBook.showContactsByPhone(Utils.getStringByRegex("\\d{1,11}"));
                    break;
                case "6"://修改联系人
                    System.out.print("输入待修改人名字：");
                    String oldName = Utils.getName();
                    //创建新的联系人
                    Contact c = new Contact();
                    System.out.print("输入新名字：");
                    c.setName(Utils.getName());
                    System.out.print("输入新电话：");
                    c.setPhone(Utils.getPhone());
                    if(addressBook.modifyContact(oldName,c)){
                        System.out.println("修改成功！");
                    }else {
                        System.out.println("修改失败！");
                    }
                    break;
                case "7"://删除联系人
                    System.out.print("输入联系人名字：");
                    if(addressBook.deleteContactByName(Utils.getName())){
                        System.out.println("删除成功！");
                    }else {
                        System.out.println("删除失败！");
                    }
                    break;
                case "8"://退出
                    System.out.print("确定要退出吗(y是/n否)：");
                    if(Utils.getYn().equals("Y")){
                        System.out.println("退出成功！");
                        System.exit(0);
                    }
                    break;
            }
        }
    }

    static void onAdd(){
        //获得新联系人数据
        Contact c = new Contact();
        System.out.print("输入名字：");
        c.setName(Utils.getName());
        System.out.print("输入电话：");
        c.setPhone(Utils.getPhone());
        //添加
        if(addressBook.addContact(c)){
            System.out.println("添加成功！");
        }else {
            System.out.println("添加失败！");
        }
    }
    static void ui(){
        System.out.println("=========通讯录==========");
        System.out.println("1.添加联系人");
        System.out.println("2.查看全部联系人");
        System.out.println("3.根据分组查看联系人");
        System.out.println("4.根据姓名关键字查看联系人");
        System.out.println("5.根据电话关键字查看关键字");
        System.out.println("6.修改联系人");
        System.out.println("7.删除联系人");
        System.out.println("8.退出");
        System.out.println("9.关键字查询");
        System.out.print("请输入您的选择（1—9）：");
    }
}
